const WebSocket = require('ws')
const path = require('path')
const fileUtils = require('../utils/file_utils')
// 创建 WebSocket 服务器对象, 确定的端口号是 9998
const wss = new WebSocket.Server({
  port: 9998
})

module.exports.listen = () => {
  // 对客户端的连接事件进行监听
  // client 代表的是客户端的连接 socket 对象
  wss.on('connection', client => {
    console.log('有客户端连接成功了...')
    // 对客户端的连接对象进行 message 事件的监听
    // msg 由客户端发给服务端的数据
    client.on('message', async msg => {
      // console.log(msg + '客户端数据');
      let payload = JSON.parse(msg)
      let action = payload.action
      if (action === 'getData') {
        let filePath = '../data/' + payload.chartName + '.json'
        filePath = path.join(__dirname, filePath)
        const res = await fileUtils.getFileJsonData(filePath)
        // 需要在服务端获取到数据的基础之上增加data字段,data对应的值就是某个json文件内容
        payload.data = res
        client.send(JSON.stringify(payload))
      } else {
        // wss.clients  所有连接的客户端
        wss.clients.forEach(client => {
          client.send(msg)
        })
      }

    })
  })
}